This invention is directed to optical disk storage systems and is more particularly directed to a new and improved embedded directory technique for storing data on an optical disk to permit rapid access thereto.
For general information concerning the field of optical data storage and the associated hardware, reference may be made to the following articles:
(1) May 7, 1984 edition, Computerworld, article entitled "Optical Storage Moves Closer to Mainframes";
(2) April, 1985 edition, Mini Micro Systems, article entitled "Optical Recording Comes of Age"; and
(3) December, 1985 edition, Mini Micro Systems, article entitled "Optical Storage Shines on the Horizon"
One object of this invention is to efficiently solve the specific problems associated with using an optical disk storage system to emulate a magnetic tape storage system in a "plug-compatible" manner. Numerous problems are encountered in such an effort, due both to the differing natures of the media and to the data organization practices which have become customary in tape storage applications.
More particularly, as conventionally implemented, a single reel of magnetic tape is commonly used to store a single "file" of data, that is, an entire data set pertaining to a particular subject, e.g., a payroll file, an employee file or the like. Within each file, the data is typically divided into "records", the length of which is not fixed. For example, each record may relate to a particular employee. Normally each record in the file is set off on the tape by "preamble" and "postamble" indicators of specified format; successive records are separated by "inter-record" gaps
In some cases, a single reel of tape may store several files, that is, several data sets accessed separately by an application program running on a host computer. If plural files are stored on a single tape, they may be divided by "file marks", as discussed below; however, the presence of a file mark does not indicate the end of a file per se. For the purposes of the present invention, it is immaterial whether one or several files are stored on a single reel of tape.
Typically, data is written to the tape record-by-record under direct control of a host computer. When the host subsequently desires to retrieve one of the records, it first directs that a particular tape be mounted, that is, so that the single file typically found on each reel of tape can be accessed. The host then directs the tape drive to obtain access to the "next" record. In response to such a command, the tape drive will typically read the next record into a random-access memory or other buffer for subsequently supplying it to the host; less sophisticated drives may simply advance the tape to a point corresponding to the beginning of the next record. If the host is not interested in a particular record, it directs instead that the next record be accessed, and so on. Thus, if the host in fact needs access to the two hundredth record on the tape, 200 such "next record" instructions must be forwarded from the host to the tape drive and executed. Obviously, this is very time consuming. Normally, of course, the intrinsic sequential nature of tape storage is turned to advantage by use of tape in connection with programs (e.g. payroll processing) in which the records can conveniently be accessed in sequence, one by one.
In order to partially alleviate this problem, it is conventional for the host computer to direct that a so called "file mark", consisting of a predetermined sequence of bits, be written to the tape from time to time, that is, at unspecified intervals between records. If the host desires to skip over a portion of the tape, it can then direct that the tape be advanced to the next file mark. The drive can advance the tape until it detects the unique file mark sequence. If the host "knows" that the record of interest is between the second and third file marks, for example, it can direct that the tape advance to the first file mark, and when this has been done, to the second file mark; the host can then direct that the tape successively read individual records, as above. Again, this process is relatively cumbersome and time consuming.
As indicated above, one object of this invention is the emulation of a tape drive using optical disk storage media. It is important that the optical disk according to the invention be "plug-compatible" with a tape drive; that is, the optical drive according to the invention must be connected to a host computer precisely as is a conventional tape drive. In this way, the optical disk can be employed without requiring any modification to the host operation or, application software. Clearly, in order to do so the optical drive must respond to all of the commands which are conventionally directed to tape drives, as outlined above, and in order to be attractive to users must provide a substantial performance advantage.
At present, all optical disk media of which the present inventor is aware define a single spiral "track", although concentric tracks could also be employed. Radially-extending "hard sectors", provided at manufacture, are spaced circumferentially around the disk and divide the spiral track into "sectors". Typically 1,024 bytes per sector may be stored on each track. The optical drive is provided with a controller operable so that its read/write head can access the disk at the beginning of any sector; hence reading and writing operations can begin at a number of "sector locations" equal to the number of the hard sectors on the disk (on the order of 32) times the number of the essentially concentric rings (on the order of 32,000) made by the spiral track.
One way of writing varying-length tape-type records to an optical disk would be to start each individual record at a sector location. In that way, whenever the host directed that the next record be accessed, the optical disk could simply begin reading at the subsequent sector. However, many tape record entries are very short, e.g., a single byte may be written as a record. In such cases, essentially the entire storage capacity represented by the sector would be wasted.
It will be recognized, of course, that magnetic disk storage is also extremely popular. Magnetic disks are also typically divided into sectors, but use concentric rather then spiral tracks. It might be considered that magnetic disk storage techniques could be usefully applied to optical disk storage. However, this actually is not the case due to the varying characteristics of magnetic and optical storage systems, for the following reasons.
Conventionally, for a disk of given size, an optical disk can store up to ten times as much data as can a magnetic disk. However, a magnetic disk can be repetitively erased and rerecorded, such that if the contents of a given file change over time, the obsolete data is simply erased and rewritten. This cannot be done with present-day commercially-available optical disk media and storage systems, which do not allow erasure.
Erasing of obsolete blocks of data, incidentally, is typically not practiced on tape, although erasing itself is readily accomplished. Instead, the new data is simply written to the end of the tape and a record is maintained (e.g. by the application program) indicating which data blocks are current and which are obsolete, such that those which are obsolete are simply ignored. This is preferred because the time consumed in rewinding the tape to the location of the obsolete record, record-by-record, as discussed - is more costly than simply using a new section of tape. An exception to this practice is discussed below.
Another important distinction between optical and magnetic disk storage is that the average "head seek" time required by state of the art magnetic read/write heads to move radially in order to access various portions of the disk is much shorter than that of the comparable optical disk read/write head units. This is simply because the magnetic read/write head assembly of a magnetic disk is typically less massive than the laser read/write head assembly associated with an optical disk. The magnetic head assembly can therefore be moved much more quickly to a given area of the disk for a read/write operation than can an optical head assembly. Accordingly, it is desired to provide a memory structure and organization for an optical disk in which head seeks are minimized insofar as possible.
The fact that magnetic disks allow repeated erasure of and rapid access to varying points of the disk has caused disk memory organization practices to develop substantially differently from those employed in connection with tape storage. As indicated above, on a given tape a single file comprising a number of individual "records" is normally stored, and a host computer accesses the file record-by-record, that is, sequentially. On a magnetic disk, by comparison, data is typically accessed only file-by-file. For example, the entire payroll file might be read from a disk into a host computer for processing in a single operation. Where a particular file extends beyond a particular sector (the beginning points of the sectors again being the only points at which the magnetic disk can accurately be addressed a directory also stored on the magnetic disk provides a "map" according to which the read/write head can then "jump" from the end of that sector to the beginning of the sector at which the next portion of the file is stored. Typically, this can be accomplished sufficiently quickly that the host does not experience a delay in accessing all of the file. Accordingly, even if an application program does not require all of the data contained in an entire file stored on a magnetic disk, but only a portion thereof, which might or might not correspond to a "record" as stored on tape, it simply accesses the entire file from the disk and then selects the individual portion required therefrom when the data has been stored in the host.
The above discussion serves to illustrate why the storage organization arrangements used for magnetic tape and disk storage cannot appropriately be applied to optical disk storage, even where a particular sequentially-organized data set to be stored on the optical disk might otherwise have been suitable for storage on tape. Notably, the fact that tape records are conventionally accessed record-by-record means that it would be inappropriate to assign an entire sector on the optical disk to each record; if the record were relatively short, most if not substantially all of the sector would be wasted. The variable-length tape records would rarely correspond to the fixed length of the sectors, such that incomplete usage would be very common.
More specifically, note that data is stored on tape record-by-record because there is no alternative to doing so; on tape, there are no permanently-written equivalents of the hard sectors on the disk which can be used to provide indexing to a particular record, for example. File marks can be written, as described above, but as presently employed this is done only in response to specific host commands. Accordingly tape records must be delimited by preamble and postamble information, so that they can be reliably counted.
Writing data to tape record-by-record does permit flexibility of record length. Media organized into blocks of fixed length, such as magnetic or optical disks, do not have this flexibility. Accordingly, to store tape-type records on media divided into fixed-length blocks (i.e., either optical or magnetic disks) is complex.
It is understood that at least in some tape systems variable-length records are also divided into fixed-length blocks for convenience in storage; see U.S. Pat. Nos. 4,398,227 and 4,531,166 to Anderson. However, if plug compatibility is to be retained, the blocks must be "transparent" to the host computer, and the random record length characteristic preserved. Hence this does not solve the problem noted above.
U. S. Pat. No. 4,467,421 to White discloses one approach to the storage of sequential, tape-type records on magnetic disks. However, this involves extensive reprogramming of the host computer, and is thus not appropriate in the plug-compatible environment primarily addressed by the present invention. Moreover, the White approach is directed principally to very large mainframe host computers.
On the other hand, to organize an optical disk in the way in which magnetic disks are normally organized would be highly inappropriate. Data stored on magnetic disks is accessed file-by-file, with numerous "head seeks" between portions of the file stored in various sectors, as indicated. Such a scheme would be inefficient in an optical disk system due to the relatively slow motion of current optical read/write head assemblies. In effect, in such case the sequential nature of the spiral track on an optical disk would not be employed gainfully. Moreover, if an optical disk were to be configured to be functionally-compatible as well as plug-compatible with a magnetic disk, the fact that data stored on magnetic disks is frequently erased and overwritten would mean that numerous obsolete copies of large volumes of data would be stored on the optical disk, since no erasure is possible. This would rapidly fill up even the high capacity optical disk systems now available. Further, to emulate a magnetic disk to a host would involve numerous difficulties with respect to plug-compatibility.
It would of course be possible to provide an interface scheme for mating a computer with an optical disk drive in a manner designed to take advantage of the characteristics of the optical media. However, to do so in a manner such that the device was not plug-compatible with a class of existing storage devices would prevent the optical disk system from being useful with preexisting computer systems, limiting the market for the optical disk.
Accordingly, it can be seen that a new way of recording data efficiently on an optical disk, while retaining plug-compatibility with a conventional magnetic data storage device, such as a tape drive, is needed.